Poznańskie Centrum Superkomputerowo - Sieciowe

 

 

 

 

PROJEKT LDAP

 

 

 

 

 

 

Projekt technik umożliwiających

przechowywanie i gromadzenie w bazie LDAP informacji

o zasobach POL-34/NASK : założenia ogólne

i wymagania specyficzne w sieci POL-34

 

 

Bartosz Belter

Jerzy Chochulski

Wiktor Procyk

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Poznań  2003

 


Spis treści

 

 

1       Wstęp. 3

2       Założenia ogólne.. 4

2.1     Stan obecny.. 4

2.2     Cele ogólne. 4

2.3     Kontakt systemu z użytkownikiem.. 4

3       Projekt.. 6

4       Podsumowanie.. 16

Bibliografia.. 17

 

 

 

1         Wstęp

 

W obecnych czasach obserwuje się lawinowy rozwój sieci komputerowych. Rozwój ten jest szczególnie widoczny w środowisku badawczo-naukowym i akademickim, w którym nie tylko bada się najnowsze technologie, ale także występuje zapotrzebowanie na dużą moc obliczeniową oraz dużą przepustowość sieci. Technologie sieciowe, by sprostać stawianym im wymaganiom, stają się coraz bardziej wyrafinowane a systemy sieciowe - coraz bardziej złożone. Sprawne zarządzanie tak złożoną siecią wymaga szybkiego dostępu do aktualnych informacji o stanie sieci i jej zasobach.

Z myślą o zarządzaniu sieciami komputerowymi opracowany został protokół SNMP, który mimo upływu czasu nadal znakomicie spełnia swoje zadanie. Zawdzięcza to przede wszystkim hierarchicznej strukturze danych oraz elastyczności  typu danych. Źródłem danych w modelu zarządzania wykorzystującym SNMP jest każde urządzenie posiadające agenta SNMP. Zakres udostępnianych informacji zależy od implementacji agenta i może obejmować takie parametry jak typy i szybkości interfejsów sieciowych, stan interfejsów sieciowych, liczba przychodzących i wychodzących oktetów i ramek na każdym interfejsie, tablica routingu, wersja oprogramowania obsługująca urządzenie, obciążenie procesora. Zastosowanie SNMP jest jednak ograniczone do aktywnych elementów sieci; użytkownik nie ma także wpływu na zakres udostępnianej informacji. Protokół SNMP, choć doskonale nadaje się do pozyskiwania informacji o stanie sieci, to jednak nie jest odpowiedni do ewidencji zasobów sieci.

Do gromadzenia i przechowywania informacji o zasobach sieci najodpowiedniejsza wydaje się być usługa LDAP, która korzysta z tych samych technik, które przyczyniły się do uniwersalności a przez to i popularności SNMP. Dane w LDAP, podobnie jak informacje agenta SNMP, mają strukturę hierarchiczną.

Celem niniejszego projektu jest opracowanie technik umożliwiających przechowywanie i gromadzenie w bazie LDAP informacji o zasobach POL-34/NASK

2         Założenia ogólne

2.1        Stan obecny

W chwili obecnej krajową sieć komputerową POL34/NASK stanowią 22 jednostki MAN połączone między sobą za pomocą łączy dzierżawionych od Teleinformatyki Kolejowej (lambda asynchroniczna). Zarówno urządzenia sieciowe (routery, switche), jak i pozostałe elementy wyposażenia węzłów, stanowią własność odpowiednich jednostek MAN. Ewidencję elementów każdy MAN prowadzi we własnym zakresie. Nie został opracowany standard dokumentowania, nie ma elektronicznego dostępu do informacji o zasobach.

Obecny stan, ze względu na brak scentralizowanego repozytorium, utrudnia planowanie rozwoju sieci w skali globalnej. Dokładna informacja ułatwia dobór narzędzi koniecznych do wykonania prac w węźle, upraszcza zgłaszanie nieprawidłowości w serwisie, umożliwia szybsze podejmowanie decyzji oraz planowanie rozwiązań awaryjnych. W świetle użytkowania i pielęgnacji sieci optycznej o zasięgu krajowym posiadanie centralnego i standaryzowanego źródła informacji o zasobach sieci komputerowej to nie kwestia wygody, a konieczność.

2.2        Cele ogólne

System ma umożliwić gromadzenie i przeglądanie informacji o zasobach POL-34/NASK. Poprzez zasoby rozumiane są tutaj fizyczne elementy infrastruktury sieci z pominięciem zasobów logicznych, takich jak kanał PVC czy pasmo. Informacje dotyczące konfiguracji logicznej mogą być pozyskiwane poprzez zapytania SNMP. Poza tym konfiguracja logiczna sieci zmienia się znacznie częściej, niż konfiguracja fizyczna, co z kolei nie odpowiada specyfice usługi LDAP, która preferuje rzadkie zmiany. Zasoby fizyczne, o których chcielibyśmy przechowywać informację, to węzły sieci, znajdujące się wewnątrz nich szafy typu rack i stopień ich wykorzystania, dostępna moc elektryczna, urządzenia sieciowe, kable i włókna światłowodowe, patchpanele oraz typy złącz.

2.3        Kontakt systemu z użytkownikiem

System adresowany jest przede wszystkim do administratorów urządzeń sieciowych. Aby w maksymalnym stopniu uprościć korzystanie z systemu proponuje się obsługę systemu poprzez interfejs www. Taki sposób, oprócz niewątpliwych zalet, ma także pewne ograniczenia. Każda zmiana schematu bazy LDAP  wymaga wprowadzenia zmian w kodzie implementacji interfejsu zmniejszając elastyczność całości systemu na modyfikacje struktur danych.

Większość zasobów sieci komputerowej, tj. urządzenia, patchcord-y, patchpanel-e, szafy typu rack powiązane są z konkretnym węzłem, dlatego też korzystanie z systemu w celu wprowadzenia, wyszukania czy też modyfikacji informacji rozpoczynać się będzie od wyboru węzła, z którym informacja jest związana.

Zasobem nie powiązanym z węzłami są dane dotyczące sposobu kontaktu z dostawcami sprzętu czy też pracownikami serwisów. Projekt uwzględnia możliwość gromadzenia i współdzielenia także i tej informacji.

Wobec braku istniejących rozwiązań, a co za tym idzie - doświadczenia związanego z elektronicznym repozytorium danych na temat zasobów sieci,  przewiduje się, że sposób korzystania z systemu może ulegać modyfikacjom by korzystanie z niego było jak najbardziej intuicyjne a odnalezienie potrzebnej informacji maksymalnie proste i szybkie.

3         Projekt

 

Projekt zakłada utworzenie schematu bazy LDAP-owej (atrybuty i klasy obiektów oraz postać bazy katalogowej) jako repozytorium danych o zasobach POL-34/NASK.

Podstawowym zasobem sieci są węzły, dlatego występują one na najwyższym poziomie w hierarchii. Wszystkie pozostałe zasoby powiązane są z węzłami. Wyjątkami od tej reguły są kable światłowodowe  (powiązane z dwoma węzłami) oraz dane kontaktowe do producentów, firm usługowych czy pracowników, którzy mogą być odpowiedzialni za pojedyncze urządzenie sieciowe, cały węzeł, kilka węzłów czy też wiele urządzeń rozmieszczonych w różnych węzłach. Taka struktura informacji. którą chcemy gromadzić, prowadzi do powstania zamieszczonego poniżej drzewa danych w bazie LDAP:

 

Drzewo dn: dc=pionier,dc=pl

 

 

dc=pionier,dc=pl

|

+---- ou=Locations                                    [klasa organizationalUnit]

|      …

|

+---- ou=Cables                                       [klasa organizationalUnit]

|      …

|

+---- ou=Other                                              [klasa organizationalUnit]

       …

 

Kolejne po lokalizacji poziomy hierarchii to szafa typu rack, a w szafie urządzenie lub patchpanel. Patchpanel składa się ze złączy światłowodowych, a urządzenie posiada karty, na których zlokalizowane są interfejsy. Interfejsy urządzeń i złącza na patchpanelach połączone są patchcordami, choć patchcordy mogą także łączyć ze sobą interfejsy dwóch urządzeń lub dwa włókna zakończone na patchpanelu.

Ze względu na możliwość łączenia za pomocą patchcord-u urządzeń i/lub patchpanel-i należących do różnych szaf, patchcord-y powinny być w hierarchii na tym samym poziomie, co szafy.

Także urządzenia powinny być na tym samym poziomie, co szafy. Wydajne urządzenia sieciowe szerokopasmowej sieci szkieletowej są dość pokaźnych rozmiarów, co może decydować o ustawieniu ich poza szafą. Patchpanel-e, ze względu na typ konstrukcji również mogą być do montażu w szafie typu rack lub jako samodzielne szafy do montażu na ścianie.

Przy planowaniu rozbudowy infrastruktury sieciowej węzła o elementy aktywne informacją równie ważną, jak dostępność odpowiednich patchcord-ów i złączy, jest dostęp do źródła zasilania o wymaganej mocy elektrycznej. Dlatego też bardzo istotną informacją związaną z węzłem są dane na temat skrzynki bezpiecznikowej i znajdujących się w niej bezpiecznikach.

Po uwzględnieniu wszystkich wymienionych powyżej wymagań drzewo danych bazy LDAP do przechowywania i gromadzenia danych dotyczących węzła przyjmuje postać jak poniżej. W drzewie danych wykorzystano klasy standardowe (organizationalUnit, inetOrgPerson) oraz klasy opracowane na potrzeby niniejszego projektu. Klasy zdefiniowane na potrzeby tego projektu posiadają prefiks pionier. Klasa inetOrgPerson zdefiniowaną w dokumencie RFC2798 "Definition of the inetOrgPerson LDAP Object Class" służy do przechowywania informacji o osobach. Według przyjętych reguł nazewnictwa nazwy formalne tworzone są na podstawie polskich wyrazów, natomiast nazwy klas obiektów w schemacie bazy LDAP z wyrazów angielskojęzycznych poprzedzonych prefiksem.

 

Poddrzewo dn: ou=Locations,dc=pionier,dc=pl

 

dc=pionier,dc=pl

|

+---- ou=Locations                                    [klasa organizationalUnit]

       |

       +---- cn=L_1                                   [klasa pionierLocation]

       |      |

       |      +---- ou=Racks                                 [klasa organizationalUnit]

       |      |      |

       |      |      +---- cn=Rack_1                   [klasa pionierRack]

       |      |      |

       |      |      +---- …

       |      |      |

       |      |      +---- cn=Rack_n

       |      +---- ou=Devices                        [klasa organizationalUnit]

       |      |      |

       |      |      +---- cn=Device_1                 [klasa pionierDevice]

       |      |      |      |

       |      |      |      +---- cn=Card_1            [klasa pionierCard]

       |      |      |      |      |

       |      |      |      |      +---- ou=GBIC       [klasa organizationalUnit]

       |      |      |      |      |      |

       |      |      |      |      |      +---- cn=GBIC_1    

       |      |      |      |      |      |            [klasa pionierGBIC]

       |      |      |      |      |      +---- …

       |      |      |      |      |      |

       |      |      |      |      |      +---- cn=GBIC_n

       |      |      |      |      |

       |      |      |      |      +---- ou=Interface  [klasa organizationalUnit]

       |      |      |      |            |

       |      |      |      |            +---- cn=Interface_1      

       |      |      |      |            |            [klasa pionierInterface]

       |      |      |      |            +---- …

       |      |      |      |            |

       |      |      |      |            +---- cn=Interface_n

       |      |      |      +---- …

       |      |      |      |

       |      |      |      +---- cn=Card_n

       |      |      |

       |      |      +---- …

       |      |      |

       |      |      +---- cn=Device_n

       |      +---- ou=Patchcords                     [klasa organizationalUnit]

       |      |      |

       |      |      +---- cn=Patchcord_1                    [klasa pionierPatchcord]

       |      |      |

       |      |      +---- …

       |      |      |

       |      |      +---- cn=Patchcord_n

       |      +---- ou=Patchpanels                           [klasa organizationalUnit]

       |      |      |

       |      |      +---- cn=Patchpanel_1                   [klasa pionierPatchpanel]

       |      |      |      |

       |      |      |      +---- cn=Connector_1              [klasa pionierConnector]

       |      |      |      |

       |      |      |      +---- …

       |      |      |      |

       |      |      |      +---- cn=Connector_n

       |      |      +---- …

       |      |      |

       |      |      +---- cn=Patchpanel_n

       |      +---- ou=FuseBox                        [klasa organizationalUnit]

       |            |

       |            +---- cn=FuseBox_1                [klasa pionierFuseBox]

       |            |      |

       |            |      +---- cn=Fuse_1            [klasa pionierFuse]

       |            |      |

       |            |      +---- …

       |            |      |

       |            |      +---- cn=Fuse_n

       |            +---- …

       |            |

       |            +---- cn=FuseBox_n

       +---- …

       |

       +---- cn=L_n

 

Warto tutaj nadmienić, że oprócz powiązań wynikających z położenia obiektów w strukturze hierarchicznej, istnieją zależnościP. Zależności te są implementowane poprzez dodanie do obiektu atrybutu wskazującego na inny obiekt. W ten sposób przechowywana jest informacja o producencie urządzenia, osobie kontaktowej, przynależności urządzenia do szafy oraz bezpiecznika, poprzez który jest ono zasilane. Na tej samej zasadzie pamiętana jest informacja dotycząca dołączenia patchcordu do konkretnego interfejsu urządzenia lub złącza na patchpanel-u.

Poniżej zamieszczony został schemat bazy LDAP, czyli tabelaryczne zestawienie atrybutów poszczególnych obiektów.

Obiekt LOKALIZACJA - klasa pionierLocation

NAZWA ATRYBUTU

TYP

ZNACZENIE

ou

String

nazwa wyróżniona

l

String

nazwa lokalizacji

postalAddress

String

adres

description

String

opis

pionierPriority

String

priorytet

 

Ze względu na dużą liczbę węzłów sieci, celem ułatwienia nawigacji pomiędzy węzłami, proponuje się wprowadzenie atrybutu priorytet. Wartość tego atrybutu będzie definiowana przez użytkownika, ale zalecane jest uzależnić ją od obecności w węźle urządzeń pracujących w danej warstwie sieciowej.

Obiekt SZAFA - pionierRack

NAZWA ATRYBUTU

TYP

ZNACZENIE

cn

String

nazwa

pionierName

String

nazwa w ramach PIONIER-a

pionierDimension

String

wymiar (U)

pionierPhysicalDimension

String

wymiar fizyczny szafy

description

String

opis

jpegPhoto

Binary

zdjęcie

Obiekt URZĄDZENIE - pionierDevice

NAZWA ATRYBUTU

TYP

ZNACZENIE

cn

String

nazwa

pionierName

String

nazwa w ramach PIONIER-a

pionierDevicePower

String

zasilanie

pionierProducerLink

DN

PRODUCENT

pionierSerialNumber

String

numer seryjny

pionierType

String

typ

description

String

opis

jpegPhoto

Binary

zdjęcie

pionierContactLink

DN

KONTAKT

pionierDeviceCommunity

String

community

pionierDeviceIMax

String

pobór prądu

pionierDeviceIPAddress

String

IP adres

pionierDeviceLogin

String

login

pionierDimension

String

wymiar

pionierFuseLink

DN

BEZPIECZNIK

pionierPositionLink

DN

SZAFA

pionierRackPosition

String

miejsce w szafie

pionierSoftware

String

oprogramowanie

Obiekt KARTA - klasa pionierCard

NAZWA ATRYBUTU

TYP

ZNACZENIE

cn

String

nazwa

pionierName

String

nazwa w ramach PIONIER-a

pionierSerialNumber

String

numer seryjny

pionierType

String

typ

description

String

opis

jpegPhoto

Binary

zdjęcie

Obiekt GBIC - klasa pionierGBIC

NAZWA ATRYBUTU

TYP

ZNACZENIE

cn

String

nazwa

pionierName

String

nazwa w ramach PIONIER-a

pionierMedia

String

medium

pionierSerialNumber

String

numer seryjny

pionierType

String

typ złącza

description

String

opis

pionierConnectionLink1

DN

PATCHCORD || WŁÓKNO

pionierLayer2Address

String

adres drugiej warstwy

Obiekt INTERFEJS - klasa pionierInterface

NAZWA ATRYBUTU

TYP

ZNACZENIE

cn

String

nazwa

pionierName

String

nazwa w ramach PIONIER-a

pionierInterfaceSpeed

String

prędkość

pionierInterfaceTechnology

String

technologia

pionierMedia

String

medium

pionierType

String

typ złącza

description

String

opis

pionierConnectionLink1

DN

PATCHCORD || WŁÓKNO

Obiekt PATCHCORD - klasa pionierPatchcord

NAZWA ATRYBUTU

TYP

ZNACZENIE

cn

String

nazwa

pionierName

String

nazwa w ramach PIONIER-a

pionierLength

String

długość

pionierType

String

typ włókna

description

String

opis

pionierConnectionLink1

DN

INTERFEJS || GBIC || ZŁĄCZE

pionierConnectionLink2

DN

INTERFEJS || GBIC || ZŁĄCZE

Obiekt PATCHPANEL - klasa pionierPatchpanel

NAZWA ATRYBUTU

TYP

ZNACZENIE

cn

String

nazwa

pionierName

String

nazwa w ramach PIONIER-a

pionierPatchpanelConnNumber

String

liczba złącz

description

String

opis

jpegPhoto

Binary

zdjęcie

pionierDimension

String

wymiar

pionierPositionLink

DN

SZAFA

pionierRackPosition

String

miejsce w szafie

Obiekt ZŁĄCZE - pionierConnector

NAZWA ATRYBUTU

TYP

ZNACZENIE

cn

String

nazwa

pionierName

String

nazwa w ramach PIONIER-a

pionierConnectorNumber

String

numer

pionierType

String

typ złącza

description

String

opis

pionierConnectionLink1

DN

PATCHCORD || WŁÓKNO

Obiekt SKRZYNKA_BEZPIECZNIKOWA - klasa pionierFuseBox

NAZWA ATRYBUTU

TYP

ZNACZENIE

cn

String

nazwa

pionierName

String

nazwa w ramach PIONIER-a

description

String

opis

jpegPhoto

Binary

zdjęcie

Obiekt BEZPIECZNIK - klasa pionierFuse

NAZWA ATRYBUTU

TYP

ZNACZENIE

cn

String

nazwa

pionierName

String

nazwa w ramach PIONIER-a

pionierFuseCurrent

String

prąd

pionierFuseVoltage

String

napięcie

pionierType

String

typ

description

String

opis

 

Struktura danych opisująca kable i włókna światłowodowe jest znacznie prostsza. Kabel światłowodowy składa się z włókien co przedstawiamy poprzez umiejscowienie obiektów włókien poniżej obiektu opisującego kabel w drzewie danych. W projekcie tym poprzez kabel światłowodowy rozumiany jest jego odcinek pomiędzy dwoma węzłami, nawet jeżeli w węźle znajduje się tylko przełącznica, tj. patchpanel z patchcord-ami.

 

Poddrzewo dn: ou=Cables,dc=pionier,dc=pl

 

dc=pionier,dc=pl

|

+---- ou=Cables                                [klasa organizationalUnit]

       |

       +---- cn=Cable_1                        [klasa pionierCable]

       |      |

       |      +---- cn=Fiber_1                  [klasa pionierFibre]

       |      |

       |      +---- …

       |      |-

       |      +---- cn=Fiber_n

       |

       +---- …

       |

       +---- cn=Cable_n

Obiekt KABEL_ŚWIATŁOWODOWY - klasa pionierCable

NAZWA

TYP

ZNACZENIE

cn

String

nazwa

pionierName

String

nazwa w ramach PIONIER-a

pionierLength

String

długość

pionierType

String

typ

description

String

opis

pionierConnectionLink1

DN

link na obiekt LOKALIZACJA

pionierConnectionLink2

DN

link na obiekt LOKALIZACJA

 


Obiekt WŁÓKNO - klasa pionierFibre

NAZWA ATRYBUTU

TYP

ZNACZENIE

cn

String

nazwa

pionierName

String

nazwa w ramach PIONIER-a

pionierFibreNumber

String

numer

pionierType

String

typ włókna

description

String

opis

pionierFibreAttennation

String

tłumienność

pionierConnectionLink1

DN

INTERFEJS || GBIC || ZŁĄCZE || WŁÓKNO

pionierConnectionLink2

DN

INTERFEJS || GBIC || ZŁĄCZE || WŁÓKNO

pionierFibreCMD

String

dyspersja chromatyczna

pionierFibrePMD

String

dyspersja polaryzacyjna

 

System gromadzenia informacji o zasobach sieci POL-34/NASK powinien także umożliwiać składowanie informacji dotyczącej sposobu kontaktu z dostawcami sprzętu czy też pracownikami serwisów. Dane te znajdują się w trzeciej gałęzi i są powiązane z obiektami z pozostałych dwóch gałęzi poprzez wartości atrybutów wspomnianych obiektów.

W gałęzi Other, oprócz podkatalogu zawierającego obiekty opisujące dane osobowe, znajdują się podkatalogi ou=Producers i ou=Companies zawierające obiekty klasy pionierCompany. Katalog ou=Producers przewidziany jest do przechowywania danych o producentach sprzętu, podczas gdy katalog ou=Companies ma w zamierzeniu zawierać dane o firmach usługowych, tj. wynajmujących pomieszczenie na węzeł, dokonujących przeglądów serwisowych itp.

 

Poddrzewo dn: ou=Other,dc=pionier,dc=pl

 

dc=pionier,dc=pl

|

+---- ou=Other                                        [klasa organizationalUnit]

       |

       +---- ou=Producers                      [klasa organizationalUnit]

             |      |

             |      +---- cn=Producer_1        [klasa pionierCompany]

             |      |

             |      +---- …

             |      |

             |      +---- cn=Producer_n

             |

             +---- ou=People                   [klasa organizationalUnit]

             |      |

             |      +---- uid=Person_1         [klasa inetOrgPerson]

             |      |

             |      +---- …

             |      |

             |      +---- uid=Person_n

             |

             +---- ou=Companies                [klasa organizationalUnit]

                    |

                    +---- cn=Company_1         [klasa pionierCompany]

                    |

                    +---- …

                    |

                    +---- cn=Company_n


Obiekt FIRMA oraz PRODUCENT - klasa pionierCompany

NAZWA ATRYBUTU

TYP

ZNACZENIE

cn

String

nazwa

pionierName

String

nazwa w ramach PIONIER-a

mail

String

e-mail

pionierWWWAddress

String

strona www

postalAddress

String

adres

description

String

Opis

Obiekt OSOBA - klasa inetOrgPerson

NAZWA ATRYBUTU

TYP

ZNACZENIE

uid

String

identyfikator osoby

cn

String

imię + nazwisko

givenName

String

imię

sn

String

nazwisko

telephoneNumber

TelephoneNumber

numer telefonu

mail

String

e-mail

seeAlso

DN

link na obiekt FIRMA, PRODUCENT lub LOKALIZACJA

 

 

 

Drzewo i schemat danych zapisane w formalnej postaci akceptowanej przez serwer LDAP (implementacja iPlanet SunONE Directory Server) przyjmują następującą postać:

 

 

#

#  PIONIER Schema

#

dn: cn=schema

#

#  PIONIER Attributes

#

attributeTypes: ( pionierDeviceCommunity-oid NAME 'pionierDeviceCommunity'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierProducerLink-oid NAME 'pionierProducerLink'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierWWWAddress-oid NAME 'pionierWWWAddress'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierType-oid NAME 'pionierType'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierMedia-oid NAME 'pionierMedia'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierPatchpanelConnNumber-oid NAME 'pionierPatchpanelConnNumber'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierDevicePower-oid NAME 'pionierDevicePower'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierFibrePMD-oid NAME 'pionierFibrePMD'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierSoftware-oid NAME 'pionierSoftware'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierLength-oid NAME 'pionierLength'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierPositionLink-oid NAME 'pionierPositionLink'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierDeviceLogin-oid NAME 'pionieer-alt:solid windowtext .5pt; padding:0cm;mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt'>                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierInterfaceSpeed-oid NAME 'pionierInterfaceSpeed'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierFibreNumber-oid NAME 'pionierFibreNumber'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

 

attributeTypes: ( pionierFuseLink-oid NAME 'pionierFuseLink'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierLayer2Address-oid NAME 'pionierLayer2Address'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierConnectionLink1-oid NAME 'pionierConnectionLink1'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierFuseCurrent-oid NAME 'pionierFuseCurrent'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierInterfaceTechnology-oid NAME 'pionierInterfaceTechnology'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierFibreCMD-oid NAME 'pionierFibreCMD'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierConnectorNumber-oid NAME 'pionierConnectorNumber'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierDeviceIMax-oid NAME 'pionierDeviceIMax'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierDimension-oid NAME 'pionierDimension'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierRackPosition-oid NAME 'pionierRackPosition'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierDeviceIPAddress-oid NAME 'pionierDeviceIPAddress'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierFuseVoltage-oid NAME 'pionierFuseVoltage'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierFibreAttennation-oid NAME 'pionierFibreAttennation'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierSerialNumber-oid NAME 'pionierSerialNumber'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierConnectionLink2-oid NAME 'pionierConnectionLink2'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierContactLink-oid NAME 'pionierContactLink'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierSeqAttr-oid NAME 'pionierSeqAttr'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierPhysicalDimension-oid NAME 'pionierPhysicalDimension'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierPriority-oid NAME 'pionierPriority'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

attributeTypes: ( pionierName-oid NAME 'pionierName'

                SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )

#

#  PIONIER Object classes

#

objectClasses: ( pionierLocation-oid NAME 'pionierLocation' SUP organizationalunit

               STRUCTURAL MAY pionierPriority X-ORIGIN 'user defined' )

objectClasses: ( pionierCompany-oid NAME 'pionierCompany' SUP top

               STRUCTURAL MUST cn MAY ( mail $ pionierWWWAddress $ description $ jpegPhoto $

               pionierName $ postalAddress ) X-ORIGIN 'user defined' )

objectClasses: ( pionierCable-oid NAME 'pionierCable' SUP top

               STRUCTURAL MUST ( cn $ pionierLength $ pionierType ) MAY ( description $

               pionierName $ pionierConnectionLink1 $ pionierConnectionLink2 )

               X-ORIGIN 'user defined' )

objectClasses: ( pionierFibre-oid NAME 'pionierFibre' SUP top

               STRUCTURAL MUST ( cn $ pionierFibreNumber $ pionierLength $ pionierType )

               MAY ( pionierConnectionLink1 $ pionierConnectionLink2 $

               pionierFibreAttennation  $ pionierFibreCMD $ pionierFibrePMD $ description $

               pionierName )

               X-ORIGIN 'user defined' )

objectClasses: ( pionierPatchcord-oid NAME 'pionierPatchcord' SUP top

               STRUCTURAL MUST ( cn $ pionierLength $ pionierType )

               MAY ( pionierConnectionLink1 $ pionierConnectionLink2 $ description $

               pionierName )

               X-ORIGIN 'user defined' )

objectClasses: ( pionierPatchpanel-oid NAME 'pionierPatchpanel' SUP top

               STRUCTURAL MUST ( cn $ pionierPatchpanelConnNumber )

               MAY ( pionierDimension $ pionierPositionLink $ pionierRackPosition $

               description $ jpegPhoto $ pionierName )

               X-ORIGIN 'user defined' )


objectClasses: ( pionierConnector-oid NAME 'pionierConnector' SUP top

               STRUCTURAL MUST ( cn $ pionierConnectorNumber $ pionierType )

               MAY ( pionierConnectionLink1 $ description $ pionierName )

               X-ORIGIN 'user  defined' )

objectClasses: ( pionierRack-oid NAME 'pionierRack' SUP top

               STRUCTURAL MUST ( cn $ pionierDimension ) MAY ( description $ jpegPhoto $

               pionierName $ pionierPhysicalDimension)

               X-ORIGIN 'user defined' )

objectClasses: ( pionierDevice-oid NAME 'pionierDevice' SUP top

               STRUCTURAL MUST ( cn $ pionierDevicePower $ pionierProducerLink $

               pionierSerialNumber $ pionierType ) MAY ( pionierContactLink $

               pionierDeviceCommunity $ pionierDeviceIMax $ pionierDeviceIPAddress $

               pionierDeviceLogin $ pionierDimension $ pionierFuseLink $ pionierPositionLink $ 

               pionierRackPosition $ pionierSoftware  $ description $ jpegPhoto $ pionierName)  

               X-ORIGIN 'user defined' )

objectClasses: ( pionierCard-oid NAME 'pionierCard' SUP top

              STRUCTURAL MUST ( cn $ pionierSerialNumber $ pndowtext .5pt; padding:0cm;mso-padding-alt:31.0pt 31.0pt 31.0pt 31.0pt'>               MAY ( $ description $ jpegPhoto $ pionierName )

               X-ORIGIN 'user defined' )

objectClasses: ( pionierInterface-oid NAME 'pionierInterface' SUP top

               STRUCTURAL MUST ( cn $ pionierInterfaceSpeed $ pionierInterfaceTechnology $

               pionierMedia $ pionierType )

               MAY ( pionierConnectionLink1 $ description $ pionierName )

               X-ORIGIN 'user defined' )

objectClasses: ( pionierGBIC-oid NAME 'pionierGBIC' SUP top

               STRUCTURAL MUST ( cn $ pionierMedia $ pionierSerialNumber $ pionierType )

               MAY ( pionierConnectionLink1 $  pionierLayer2Address $ description $

               pionierName )

               X-ORIGIN 'user defined' )

objectClasses: ( pionierFuseBox-oid NAME 'pionierFuseBox' SUP top

               STRUCTURAL MUST cn MAY ( description $ jpegPhoto $ pionierName )

               X-ORIGIN 'user defined' )

objectClasses: ( pionierFuse-oid NAME 'pionierFuse' SUP top

               STRUCTURAL MUST ( cn $ pionierFuseCurrent $ pionierFuseVoltage $ pionierType )

               MAY ( description $ pionierName )

               X-ORIGIN 'user defined' )

objectClasses: ( pionierSequencer-oid NAME 'pionierSequencer' SUP top

               STRUCTURAL MUST ( cn $ pionierSeqAttr )

               X-ORIGIN 'user defined')

 

 

 

 

4         Podsumowanie

 

Cel projektu to opracowanie technik umożliwiających przechowywanie i gromadzenie w bazie LDAP informacji o zasobach POL-34/NASK. Cel ten został osiągnięty. W projekcie dokonano analizy zakresu informacji, która powinna być składowana w bazie LDAP oraz zaproponowano drzewo i schemat danych przystający do charakteru informacji.

Baza LDAP doskonale nadaje się do realizowanego zadania. Hierarchiczna struktura pozwala w prosty sposób modelować rzeczywistość, a możliwość definiowania zależności pomiędzy obiektami umożliwia stosowanie bazy LDAP do wszystkich, także niestandardowych przypadków, gdzie hierarchiczność danych może być zakłócona. Ograniczenie bazy LDAP wynikające z preferencji do danych, które są rzadko modyfikowane, w rozpatrywanym przypadku jest nieistotne. Rozpatrywany w projekcie zbiór informacji ma charakter danych, które rzadko ulegają zmianom.

Wdrożenie projektu umożliwi elektroniczną ewidencję zasobów sieci komputerowej. Scentralizowany charakter systemu powinien rozwiązać problem niespójności danych, który ma miejsce w przypadku gdy wielu administratorów sieci aktualizuje niepowiązane ze sobą duplikaty dokumentacji. System wraz z zawartą w nim informacją może być dostępny dla wszystkich administratorów co dodatkowo powinno usprawnić i przyspieszyć działania naprawcze w przypadku awarii a także umożliwić lepsze planowanie rozbudowy sieci.

Bibliografia

 

[ 1 ]

T.A. Howes, M.C. Smith, G.S. Good  "Understanding and Deploying LDAP Directory Services", 1999

[ 2 ]

Netscape Directory SDK for Java http://developer.netscape.com/tech/directory/index.html

[ 3 ]

RFC2798 Definition of the inetOrgPerson LDAP Object Class

ftp://ftp.rfc-editor.org/in-notes/rfc2798.txt

[ 4 ]

POL-34 Network Operation Center

http://noc.man.poznan.pl